package com.ideal.manage.esms.repository.system;

import com.ideal.manage.esms.bean.project.ProjectManage;
import com.ideal.manage.esms.bean.sys.User;
import com.ideal.manage.esms.bean.sys.UserProject;
import com.ideal.manage.esms.repository.framework.BaseRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface UserProjectRepository extends BaseRepository<UserProject, String> {

    @Query("select u from UserProject u where u.userId.id = ?1 and u.isValid = 1")
    List<UserProject> findProjects(String id);

    @Query("select u from UserProject u where u.projectId.id = ?1 and u.isValid = 1")
    List<UserProject> findByProjectId(String id);

    /**
     * 根据user找到所有用户拥有的项目（正常使用的项目）
     * 我也不知道为什么是userId和projectId 实体类不是我干的 就按照实体类来了 ε=(´ο｀*)))唉
     * @param user 当前登录用户
     * @return
     */
    @Query("select u.projectId from UserProject u where u.userId=?1 and u.isValid=1 and u.projectId.isValid=1")
    List<ProjectManage> findProjectByUser(User user);

    /**
     * 根据user 和 name 找到所有用户拥有的项目（正常使用的项目）
     * 我也不知道为什么是userId和projectId 实体类不是我干的 就按照实体类来了 ε=(´ο｀*)))唉
     * @param user 当前登录用户
     * @return
     */
    @Query("select u.projectId from UserProject u where u.userId=?1 and u.isValid=1 and u.projectId.isValid=1 and u.projectId.name like '%'||?2||'%'")
    List<ProjectManage> findProjectByUserAndName(User user, String name);
}
